<?php
include "_inc/start.php";

$m = $_POST["m"];

if ($m == "IniciaJogo") IniciaJogo();
if ($m == "TemJogador") TemJogador();
if ($m == "Move")		Move();
if ($m == "GetMove")	GetMove();

function Move() {
	global $objBanco;
	$intMesaId			= getNumeric($_POST["mesa_id"]);
	$intJogadorId		= getNumeric($_POST["jogador_id"]);
	$intCasaOriginal	= getNumeric($_POST["casa_original"]);
	$intCasa			= getNumeric($_POST["casa"]);

	if (ValidaMovimento($intMesaId, $intJogadorId, $intCasaOriginal, $intCasa)) {

		//grava o movimento no historico
		$objBanco->LimpaCampos();
		$objBanco->CampoValor("mesa_id",			$intMesaId);
		$objBanco->CampoValor("jogador_id",			$intJogadorId);
		$objBanco->CampoValor("posicao_origem",		$intCasaOriginal);
		$objBanco->CampoValor("posicao_destino",	$intCasa);
		$objBanco->Inserir("movimento");
		
		//pega o id da peca
		$strSQL	= "SELECT peca_id FROM tabuleiro WHERE mesa_id = " . $intMesaId . " AND posicao = " . $intCasaOriginal;
		$retTab	= $objBanco->Consultar($strSQL);
		$intPecaId = 0;
		if ($retTab) {
			if (mysql_num_rows($retTab) != 0) {
				$intPecaId = getNumeric(mysql_result($retTab, 0, "peca_id"));
			}
		}

		//limpa a casa de origem
		$strSQL = "DELETE FROM tabuleiro WHERE mesa_id = " . $intMesaId . " AND posicao = " . $intCasaOriginal;

		//limpa a casa de destino
		$strSQL = "DELETE FROM tabuleiro WHERE mesa_id = " . $intMesaId . " AND posicao = " . $intCasa;

		//grava a peca no destino
		$objBanco->LimpaCampos();
		$objBanco->CampoValor("mesa_id", $intMesaId);
		$objBanco->CampoValor("posicao", $intCasa);
		$objBanco->CampoValor("peca_id", $intPecaId);
		$objBanco->Inserir("tabuleiro");

		die("true");

	} else {
		die("false");
	}
}

function ValidaMovimento() {
	return true;
}

function GetMove() {
	global $objBanco;
	$intMesaId			= getNumeric($_POST["mesa_id"]);
	$intJogadorId		= getNumeric($_POST["jogador_id"]);
	$blnNovoMove		= false;
	$intOrigem			= 0;
	$intDestino			= 0;

	$strSQL	= "SELECT jogador_id, posicao_origem, posicao_destino FROM movimento WHERE mesa_id = " . $intMesaId . " ORDER BY movimento_id DESC LIMIT 1";
	$retMov	= $objBanco->Consultar($strSQL);
	if ($retMov) {
		if (mysql_num_rows($retMov) != 0) {
			$intLastJogadorId = getNumeric(mysql_result($retMov, 0, "jogador_id"));
			if ($intLastJogadorId != $intJogadorId) {
				$blnNovoMove	= true;
				$intOrigem		= mysql_result($retMov, 0, "posicao_origem");
				$intDestino		= mysql_result($retMov, 0, "posicao_destino");
			}
		}
	}
	die(json_encode(array('novo_move' => $blnNovoMove, 'posicao_origem' => $intOrigem, 'posicao_destino' => $intDestino)));
}

function TemJogador() {
	global $objBanco;
	$intMesaId		= getNumeric($_POST["mesa_id"]);
	$strSQL			= "SELECT jogador_id2 FROM mesa WHERE mesa_id = " . $intMesaId;
	$retMesa		= $objBanco->Consultar($strSQL);
	if ($retMesa) {
		if (mysql_num_rows($retMesa) != 0) {
			$intJogador2Id = getNumeric(mysql_result($retMesa, 0, "jogador_id2"));
			die(json_encode(array('temjogador' => (($intJogador2Id == 0)?'0':'1'))));
		}
	}
}

function IniciaJogo() {
	global $objBanco;
	$strSQL			= "SELECT mesa_id FROM mesa WHERE status_id = 1 ORDER BY mesa_id";
	$retMesa		= $objBanco->Consultar($strSQL);
	$intMesaId		= 0;
	$intNovaMesa	= 0;

	$intJogadorId	= CriaJogador();

	if ($retMesa) {
		if (mysql_num_rows($retMesa) == 0) {
			$intNovaMesa	= 1;
			$intMesaId		= AbreMesa($intJogadorId);
		} else {
			$intMesaId		= mysql_result($retMesa, 0, "mesa_id");
			$objBanco->LimpaCampos();
			$objBanco->CampoValor("jogador_id2", $intJogadorId);
			$objBanco->CampoValor("status_id", "2");
			$objBanco->Editar("mesa", "mesa_id", $intMesaId);
		}
		die(json_encode(array('nova' => $intNovaMesa, 'mesa_id' => $intMesaId, 'jogador_id' => $intJogadorId)));
	}

//while ($objROW = mysql_fetch_array($objResult)) {
//$objROW["mng_secao_id"]
//for ($y = 0; $y < mysql_num_rows($objResult); $y++)
//mysql_result($objResult, $y, "aa");
}

function CriaJogador() {
	global $objBanco;
	$objBanco->LimpaCampos();
	$objBanco->CampoValor("nome", "");
	$objBanco->CampoValor("jogos", 0);
	$objBanco->CampoValor("vitorias", 0);
	$objBanco->CampoValor("derrotas", 0);
	$objBanco->CampoValor("ip", $_SERVER["REMOTE_ADDR"]);
	$objBanco->Inserir("jogador");
	return $objBanco->GetInsertId();
}

function AbreMesa($intJogadorId) {
	global $objBanco;
	$objBanco->LimpaCampos();
	$objBanco->CampoValor("jogador_id1", $intJogadorId);
	$objBanco->CampoValor("jogador_id2", "");
	$objBanco->CampoValor("status_id", "1");
	$objBanco->CampoValorNoStr("data", "SYSDATE()");
	$objBanco->Inserir("mesa");
	$intMesaId = $objBanco->GetInsertId();

	//tabuleiro
	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "11");
	$objBanco->CampoValor("peca_id", "1");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "12");
	$objBanco->CampoValor("peca_id", "2");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "13");
	$objBanco->CampoValor("peca_id", "3");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "14");
	$objBanco->CampoValor("peca_id", "4");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "15");
	$objBanco->CampoValor("peca_id", "5");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "16");
	$objBanco->CampoValor("peca_id", "3");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "17");
	$objBanco->CampoValor("peca_id", "2");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "18");
	$objBanco->CampoValor("peca_id", "1");
	$objBanco->Inserir("tabuleiro");

	for ($i = 1; $i <= 8; $i++) {
		$objBanco->LimpaCampos();
		$objBanco->CampoValor("mesa_id", $intMesaId);
		$objBanco->CampoValor("posicao", "2" . $i);
		$objBanco->CampoValor("peca_id", "6");
		$objBanco->Inserir("tabuleiro");
	}

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "71");
	$objBanco->CampoValor("peca_id", "7");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "72");
	$objBanco->CampoValor("peca_id", "8");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "73");
	$objBanco->CampoValor("peca_id", "9");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "74");
	$objBanco->CampoValor("peca_id", "10");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "75");
	$objBanco->CampoValor("peca_id", "11");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "76");
	$objBanco->CampoValor("peca_id", "9");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "77");
	$objBanco->CampoValor("peca_id", "8");
	$objBanco->Inserir("tabuleiro");

	$objBanco->LimpaCampos();
	$objBanco->CampoValor("mesa_id", $intMesaId);
	$objBanco->CampoValor("posicao", "78");
	$objBanco->CampoValor("peca_id", "7");
	$objBanco->Inserir("tabuleiro");

	for ($i = 1; $i <= 8; $i++) {
		$objBanco->LimpaCampos();
		$objBanco->CampoValor("mesa_id", $intMesaId);
		$objBanco->CampoValor("posicao", "8" . $i);
		$objBanco->CampoValor("peca_id", "12");
		$objBanco->Inserir("tabuleiro");
	}

	return $intMesaId;
}
?>